home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 March / PCWorld_2008-03_cd.bin / v cisle / xulplayer / xulplayer-0.2.1.5.exe / xulrunner / res / forms.css < prev    next >
Cascading Style Sheet File  |  2007-07-27  |  15KB  |  572 lines

  1. /* ***** BEGIN LICENSE BLOCK *****
  2.  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  3.  *
  4.  * The contents of this file are subject to the Mozilla Public License Version
  5.  * 1.1 (the "License"); you may not use this file except in compliance with
  6.  * the License. You may obtain a copy of the License at
  7.  * http://www.mozilla.org/MPL/
  8.  *
  9.  * Software distributed under the License is distributed on an "AS IS" basis,
  10.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  11.  * for the specific language governing rights and limitations under the
  12.  * License.
  13.  *
  14.  * The Original Code is mozilla.org code.
  15.  *
  16.  * The Initial Developer of the Original Code is
  17.  * Netscape Communications Corporation.
  18.  * Portions created by the Initial Developer are Copyright (C) 1998
  19.  * the Initial Developer. All Rights Reserved.
  20.  *
  21.  * Contributor(s):
  22.  *
  23.  * Alternatively, the contents of this file may be used under the terms of
  24.  * either of the GNU General Public License Version 2 or later (the "GPL"),
  25.  * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  26.  * in which case the provisions of the GPL or the LGPL are applicable instead
  27.  * of those above. If you wish to allow use of your version of this file only
  28.  * under the terms of either the GPL or the LGPL, and not to allow others to
  29.  * use your version of this file under the terms of the MPL, indicate your
  30.  * decision by deleting the provisions above and replace them with the notice
  31.  * and other provisions required by the GPL or the LGPL. If you do not delete
  32.  * the provisions above, a recipient may use your version of this file under
  33.  * the terms of any one of the MPL, the GPL or the LGPL.
  34.  *
  35.  * ***** END LICENSE BLOCK ***** */
  36.  
  37. /** 
  38.   Styles for old GFX form widgets
  39.  **/ 
  40.  
  41.  
  42. @namespace url(http://www.w3.org/1999/xhtml); /* set default namespace to HTML */
  43. @namespace xul url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
  44.  
  45. *|*::-moz-fieldset-content {
  46.   display: block;
  47.   height: 100%;   /* Need this so percentage heights of kids work right */
  48. }
  49.  
  50. /* miscellaneous form elements */
  51.  
  52. legend {
  53.   padding-left: 2px;
  54.   padding-right: 2px;
  55.   border: none;
  56.   position: static ! important;
  57.   float: none ! important;
  58. }
  59.  
  60. fieldset {
  61.   display: block;
  62.   margin-left: 2px;
  63.   margin-right: 2px;
  64.   padding: 0.35em 0.625em 0.75em;
  65.   border: 2px groove ThreeDFace;
  66. }
  67.  
  68. label {
  69.   cursor: default;
  70. }
  71.  
  72. /* default inputs, text inputs, and selects */
  73.  
  74. /* Note: Values in nsNativeTheme IsWidgetStyled function 
  75.    need to match textfield background/border values here */
  76.  
  77. input {
  78.   -moz-appearance: textfield;
  79.   /* The sum of border-top, border-bottom, padding-top, padding-bottom
  80.      must be the same here, for buttons, and for <select> (including its
  81.      internal padding magic) */
  82.   padding: 1px 0 1px 0;
  83.   border: 2px inset ThreeDFace;
  84.   background-color: -moz-Field;
  85.   color: -moz-FieldText;
  86.   font: -moz-field;
  87.   line-height: normal !important;
  88.   text-align: start;
  89.   text-transform: none;
  90.   word-spacing: normal;
  91.   letter-spacing: normal;
  92.   cursor: text;
  93.   -moz-binding: url("chrome://global/content/platformHTMLBindings.xml#inputFields");
  94.   text-indent: 0;
  95.   -moz-user-select: text;
  96. }
  97.  
  98. input > .anonymous-div {
  99.   white-space: pre;
  100. }
  101.  
  102. textarea {
  103.   margin: 1px 0 1px 0;
  104.   border: 2px inset ThreeDFace;
  105.   background-color: -moz-Field;
  106.   color: -moz-FieldText;
  107.   font: medium -moz-fixed;
  108.   text-align: start;
  109.   text-transform: none;
  110.   word-spacing: normal;
  111.   letter-spacing: normal;
  112.   vertical-align: text-bottom;
  113.   cursor: text;
  114.   -moz-binding: url("chrome://global/content/platformHTMLBindings.xml#textAreas");
  115.   -moz-appearance: textfield-multiline;
  116.   text-indent: 0;
  117.   -moz-user-select: text;
  118. }
  119.  
  120. textarea > scrollbar {
  121.   cursor: default;
  122. }
  123.  
  124. textarea > .anonymous-div,
  125. input > .anonymous-div {
  126.   overflow: auto;
  127.   border: 0px !important;
  128.   /* The 1px horizontal padding is for parity with Win/IE */
  129.   padding: 0px 1px;
  130.   margin: 0px;
  131.   /* XXXldb I'm not sure if we really want the 'text-decoration: inherit',
  132.      but it's needed to make 'text-decoration' "work" on text inputs. */
  133.   text-decoration: inherit;
  134.   ime-mode: inherit;
  135. }
  136.  
  137. input:-moz-read-write,
  138. textarea:-moz-read-write {
  139.   -moz-user-modify: read-write !important;
  140. }
  141.  
  142. select {
  143.   margin: 0;
  144.   border-color: ThreeDFace;
  145.   background-color: -moz-Field;
  146.   color: -moz-FieldText;
  147.   font: -moz-list;
  148.   line-height: normal !important;
  149.   white-space: nowrap !important;
  150.   text-align: start; 
  151.   cursor: default;
  152.   -moz-box-sizing: border-box;
  153.   -moz-user-select: none;
  154.   -moz-appearance: menulist;
  155.   border-width: 2px;
  156.   border-style: inset;
  157.   text-indent: 0;
  158.   overflow: -moz-hidden-unscrollable;
  159. }
  160.  
  161. /* Need the "select[size][multiple]" selector to override the settings on
  162.    'select[size="1"]', eg if one has <select size="1" multiple> */
  163.    
  164. select[size],
  165. select[multiple],
  166. select[size][multiple] {
  167.   /* Different alignment and padding for listbox vs combobox */
  168.   vertical-align: text-bottom;
  169.   padding: 1px 0 1px 0;
  170.   -moz-appearance: listbox;
  171. }
  172.  
  173. select[size="0"],
  174. select[size="1"] {
  175.   /* Except this is not a listbox */
  176.   vertical-align: baseline;
  177.   padding: 0;
  178.   -moz-appearance: menulist;
  179. }
  180.  
  181. select > input[type="button"] {
  182.   width: 12px;
  183.   height: 12px;
  184.   white-space: nowrap;
  185.   position: static !important;
  186.   background-image: url("arrow.gif") !important;
  187.   background-repeat: no-repeat !important;
  188.   background-position: center !important;
  189.   -moz-appearance: menulist-button;
  190.  
  191.   /* Make sure to size correctly if the combobox has a non-auto height. */
  192.   height: 100% ! important;
  193.   -moz-box-sizing: border-box ! important;
  194.  
  195.   /*
  196.     Make sure to align properly with the display frame.  Note that we
  197.     want the baseline of the combobox to match the baseline of the
  198.     display frame, so the dropmarker is what gets the vertical-align.
  199.   */
  200.   vertical-align: top !important;
  201. }
  202.  
  203. select > input[type="button"]:active {
  204.   background-image: url("arrowd.gif") !important;
  205. }
  206.  
  207. select:empty {
  208.   min-width: 2.5em;
  209. }
  210.  
  211. *|*::-moz-display-comboboxcontrol-frame {
  212.   overflow: -moz-hidden-unscrollable;
  213.   /* This top/bottom padding plus the combobox top/bottom border need to
  214.      add up to the top/bottom borderpadding of text inputs and buttons */ 
  215.   padding-top: 1px;
  216.   padding-bottom: 1px;
  217.   -moz-padding-start: 4px;
  218.   -moz-padding-end: 0;
  219.   background-color: inherit;
  220.   color: inherit;
  221.   white-space: nowrap;
  222.   text-align: inherit;
  223.   -moz-user-select: none;
  224.   /* Make sure to size correctly if the combobox has a non-auto height. */
  225.   height: 100% ! important;
  226.   -moz-box-sizing: border-box ! important;
  227. }
  228.  
  229. select::-moz-scrolled-content {
  230.   display: block !important;
  231. }
  232.  
  233. option {
  234.   display: block;
  235.   float: none !important;
  236.   position: static !important;
  237.   min-height: 1em;
  238.   line-height: normal !important;
  239.   -moz-user-select: none;
  240.   text-indent: 0;
  241. }
  242.  
  243. select > option {
  244.   padding-top : 0;
  245.   padding-bottom: 0;
  246.   -moz-padding-start: 3px;
  247.   -moz-padding-end: 5px;
  248. }
  249.  
  250. option:checked {
  251.   background-color: Highlight ! important;
  252.   color: HighlightText ! important;
  253. }
  254.  
  255. optgroup {
  256.   display: block;
  257.   float: none !important;
  258.   position: static !important;
  259.   font: -moz-list;
  260.   line-height: normal !important;
  261.   font-style: italic;
  262.   font-weight: bold;
  263.   font-size: inherit;
  264.   -moz-user-select: none;
  265.   text-indent: 0;
  266. }
  267.  
  268. optgroup > option {
  269.   -moz-padding-start: 20px;
  270.   font-style: normal;
  271.   font-weight: normal;
  272. }
  273.  
  274. optgroup:before {
  275.   display: block;
  276.   content: attr(label);
  277. }
  278.  
  279. *|*::-moz-dropdown-list {
  280.   z-index: 2147483647;
  281.   background-color: inherit;
  282.   -moz-user-select: none;
  283.   position: static !important;
  284.   float: none !important;
  285.  
  286.   /*
  287.    * We can't change the padding here, because that would affect our
  288.    * intrinsic width, since we scroll.  But at the same time, we want
  289.    * to make sure that our left border+padding matches the left
  290.    * border+padding of a combobox so that our scrollbar will line up
  291.    * with the dropmarker.  So set our left border to 2px.
  292.    */
  293.   border: 1px outset black !important;
  294.   border-left-width: 2px ! important;
  295.  
  296. input[disabled],
  297. textarea[disabled],
  298. option[disabled],
  299. optgroup[disabled],
  300. select[disabled] {
  301.   -moz-user-input: disabled;
  302.   -moz-user-focus: ignore;
  303.   color: GrayText;
  304.   background-color: ThreeDFace;
  305.   cursor: inherit;
  306. }
  307.  
  308. option[disabled],
  309. optgroup[disabled] {
  310.   background-color: transparent;
  311. }
  312.  
  313. /* hidden inputs */
  314. input[type="hidden"] {
  315.   -moz-appearance: none;
  316.   display: none;
  317.   padding: 0;
  318.   border: 0;
  319.   cursor: auto;
  320.   -moz-user-focus: ignore;
  321.   -moz-binding: none;
  322. }
  323.  
  324. /* image buttons */
  325. input[type="image"] {
  326.   -moz-appearance: none;
  327.   padding: 0;
  328.   border: none;
  329.   background-color: transparent;
  330.   font-family: sans-serif;
  331.   font-size: small;
  332.   cursor: pointer;
  333.   -moz-binding: none;
  334. }
  335.  
  336. input[type="image"][disabled] {
  337.   cursor: inherit;
  338. }
  339.  
  340. input[type="image"]:focus {
  341.   /* Don't specify the outline-color, we should always use initial value. */
  342.   outline: 1px dotted;
  343. }
  344.  
  345. /* file selector */
  346. input[type="file"] {
  347.   -moz-appearance: none;
  348.   white-space: nowrap;
  349.   cursor: default;
  350.   -moz-binding: none;
  351.  
  352.   padding: 0 !important;
  353.   border-style: none !important;
  354. }
  355.  
  356. input[type="file"] > input[type="text"][disabled] {
  357.   border-color: inherit;
  358.   background-color: inherit;
  359.   -moz-user-focus: ignore !important;
  360.   /* enable user input so that clicking on the control can bring up the
  361.      file dialog. It's still read-only. */
  362.   -moz-user-input: enabled;
  363.   color: inherit;
  364.   font-size: inherit;
  365.   height: inherit;
  366.   letter-spacing: inherit;
  367. }
  368.  
  369. /* button part of file selector */
  370. input[type="file"] > input[type="button"] {
  371.   height: inherit;
  372.   font-size: inherit;
  373.   letter-spacing: inherit;
  374. }
  375.  
  376. /* radio buttons */
  377. input[type="radio"] {
  378.   -moz-appearance: radio-small;
  379.   width: 13px;
  380.   height: 13px;
  381.   margin: 3px 3px 0px 5px;
  382.   padding: 0 !important;
  383.   cursor: default;
  384.   -moz-binding: none;
  385.  
  386.   -moz-border-radius: 100% !important;
  387. }
  388.  
  389. /* check boxes */
  390. input[type="checkbox"] {
  391.   -moz-appearance: checkbox-small;
  392.   width: 13px;
  393.   height: 13px;
  394.   margin: 3px 3px 3px 4px;
  395.   padding: 0 !important;
  396.   vertical-align: text-bottom;
  397.   cursor: default;
  398.   -moz-binding: none;
  399.  
  400.   -moz-border-radius: 0 !important;
  401. }
  402.  
  403. /* common features of radio buttons and check boxes */
  404.  
  405. input[type="radio"],
  406. input[type="checkbox"] {
  407.   /* same colors as |input| rule, but |!important| this time. */
  408.   -moz-box-sizing: border-box;
  409.   background-color: -moz-Field ! important;
  410.   color: -moz-FieldText ! important;
  411.   border: 2px inset ThreeDFace ! important;
  412. }
  413.  
  414. input[type="radio"][disabled],
  415. input[type="radio"][disabled]:active,
  416. input[type="radio"][disabled]:hover,
  417. input[type="radio"][disabled]:hover:active,
  418. input[type="checkbox"][disabled],
  419. input[type="checkbox"][disabled]:active,
  420. input[type="checkbox"][disabled]:hover,
  421. input[type="checkbox"][disabled]:hover:active {
  422.   padding: 1px;
  423.   border: 1px inset ThreeDShadow ! important;
  424.   /* same as above, but !important */
  425.   color: GrayText ! important;
  426.   background-color: ThreeDFace ! important;
  427.   cursor: inherit; 
  428. }
  429.  
  430. input[type="checkbox"]:focus,
  431. input[type="radio"]:focus {
  432.   border-style: groove !important;
  433. }
  434.  
  435. input[type="checkbox"]:hover:active,
  436. input[type="radio"]:hover:active {
  437.   background-color: ThreeDFace ! important;
  438.   border-style: inset !important;
  439. }
  440.  
  441. *|*::-moz-radio {
  442.   width: 4px;
  443.   height: 4px;
  444.   background-color: -moz-FieldText ! important;
  445.   -moz-border-radius: 3px;
  446. }
  447.  
  448. /* buttons */
  449.  
  450. /* Note: Values in nsNativeTheme IsWidgetStyled function 
  451.    need to match button background/border values here */
  452.  
  453. button, 
  454. input[type="reset"],
  455. input[type="button"],
  456. input[type="submit"] { 
  457.   -moz-appearance: button;
  458.   /* The sum of border-top, border-bottom, padding-top, padding-bottom
  459.      must be the same here, for text inputs, and for <select>.  For
  460.      buttons, make sure to include the -moz-focus-inner border/padding. */
  461.   padding: 0px 6px 0px 6px;
  462.   border: 2px outset ButtonFace;
  463.   background-color: ButtonFace;
  464.   color: ButtonText; 
  465.   font: -moz-button;
  466.   line-height: normal !important;
  467.   white-space: pre;
  468.   cursor: default;
  469.   -moz-box-sizing: border-box;
  470.   -moz-user-select: none;
  471.   -moz-binding: none;
  472.   text-align: center;
  473. }
  474.  
  475. button {
  476.   /* Buttons should lay out like "normal" html, mostly */
  477.   white-space: normal;  
  478.   text-indent: 0;
  479. }
  480.  
  481. *|*::-moz-button-content {
  482.   display: block;
  483. }
  484.  
  485. button:active:hover,
  486. input[type="reset"]:active:hover,
  487. input[type="button"]:active:hover,
  488. input[type="submit"]:active:hover {
  489.   padding: 0px 5px 0px 7px;
  490.   border-style: inset;
  491. }
  492.  
  493. button::-moz-focus-inner,
  494. input[type="reset"]::-moz-focus-inner,
  495. input[type="button"]::-moz-focus-inner,
  496. input[type="submit"]::-moz-focus-inner,
  497. input[type="file"] > input[type="button"]::-moz-focus-inner {
  498.   padding: 0px 2px 0px 2px;
  499.   border: 1px dotted transparent;
  500. }
  501.  
  502. button:focus::-moz-focus-inner,
  503. input[type="reset"]:focus::-moz-focus-inner,
  504. input[type="button"]:focus::-moz-focus-inner,
  505. input[type="submit"]:focus::-moz-focus-inner,
  506. input[type="file"] > input[type="button"]:focus::-moz-focus-inner {
  507.   border-color: ButtonText;
  508. }
  509.  
  510. button[disabled]:active, button[disabled],
  511. input[type="reset"][disabled]:active,
  512. input[type="reset"][disabled],
  513. input[type="button"][disabled]:active,
  514. input[type="button"][disabled],
  515. select[disabled] > input[type="button"],
  516. select[disabled] > input[type="button"]:active,
  517. input[type="submit"][disabled]:active,
  518. input[type="submit"][disabled] {
  519.   /* The sum of border-top, border-bottom, padding-top, padding-bottom
  520.      must be the same here and for text inputs */
  521.   padding: 1px 7px 1px 7px;
  522.   border: 1px outset ButtonShadow;
  523.   color: GrayText;
  524.   cursor: inherit; 
  525. }
  526.  
  527.  /*
  528.   * Make form controls inherit 'unicode-bidi' transparently as required by
  529.   *  their various anonymous descendants and pseudo-elements:
  530.   *
  531.   * <textarea> and <input type="text">:
  532.   *  inherit into the XULScroll frame with class 'anonymous-div' which is a
  533.   *  child of the text control.
  534.   *
  535.   * Buttons (either <button>, <input type="submit">, <input type="button">
  536.   *          or <input type="reset">)
  537.   *  inherit into the ':-moz-button-content' pseudo-element.
  538.   *
  539.   * <select>:
  540.   *  inherit into the ':-moz-display-comboboxcontrol-frame' pseudo-element and
  541.   *  the <optgroup>'s ':before' pseudo-element, which is where the label of
  542.   *  the <optgroup> gets displayed. The <option>s don't use anonymous boxes,
  543.   *  so they need no special rules.
  544.   */
  545. textarea > .anonymous-div,
  546. input > .anonymous-div,
  547. *|*::-moz-button-content,
  548. *|*::-moz-display-comboboxcontrol-frame,
  549. optgroup:before {
  550.   unicode-bidi: inherit;
  551. }
  552.  
  553.  /*
  554.   * Force the text control child of file input controls to have left-to-right
  555.   * directionality. Otherwise filenames containing right-to-left characters
  556.   * will be reordered with chaotic results.
  557.   */
  558. input[type="file"] > input[type="text"] {
  559.   direction: ltr !important;
  560.   text-align: inherit;
  561. }
  562.  
  563. @media print {
  564.   input, textarea, select, button {
  565.     -moz-user-input: none !important;
  566.   }
  567.  
  568.   input[type="file"] { height: 2em; }
  569. }
  570.  
  571.